package com.locationbasedagent.shared;

import java.util.List;

import com.google.web.bindery.requestfactory.shared.Request;
import com.google.web.bindery.requestfactory.shared.RequestContext;
import com.google.web.bindery.requestfactory.shared.ServiceName;
@ServiceName(value = "com.locationbasedagent.server.LocationBasedAgentService", locator = "com.locationbasedagent.server.LocationBasedAgentServiceLocator")

//@ServiceName("com.locationbasedagent.server.LocationBasedAgentService")
public interface HouseListingRequest extends RequestContext {
	
	Request<LocationBasedAgentUserProxy> createLocationBasedAgentUser(String userID, String firstname, String lastname,
			String phonenumber, boolean isAgent, String hometown);

	Request<LocationBasedAgentUserProxy> readLocationBasedAgentUser(Long id);

	Request<LocationBasedAgentUserProxy> updateLocationBasedAgentUser(
			LocationBasedAgentUserProxy locationbasedagentuser);

	Request<Void> deleteLocationBasedAgentUser(
			LocationBasedAgentUserProxy locationbasedagentuser);

	Request<List<LocationBasedAgentUserProxy>> queryLocationBasedAgentUsersByID(String userID);

	Request<HouseListingProxy> createHouseListing(String name, String address, String city, String zip, String agentID, String agentNumber, 
			String latitude, String longitude, String price, String photo1, String photo2, String photo3, String photo4, 
			String photo5, String video);

	Request<HouseListingProxy> readHouseListing(Long id);

	Request<HouseListingProxy> updateHouseListing(Long id, String name, String address, String city, String zip, String agentID, String agentNumber, 
			String latitude, String longitude, String price, String photo1, String photo2, String photo3, String photo4, 
			String photo5, String video);

	Request<Void> deleteHouseListing(Long id);

	Request<List<HouseListingProxy>> queryHouseListings(String operation, String id, String name, String address, String city, String zip, String agentID, String agentNumber, 
			String latitude, String longitude, String price, String photo1, String photo2, String photo3, String photo4, 
			String photo5, String video);

}
